package com.xzmzhp.service.finance;

import com.xzmzhp.pojo.finance.FinanceType;
import com.xzmzhp.utils.return_tool.ReturnData;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author 王源(xm)
 * @Date: 2021/11/5 14:26
 * @Description: 财务类型信息逻辑接口
 */
@Repository
public interface FinanceTypeService {

    /**
     * 根据id查询财务类型信息
     *
     * @param financeTypeId     财务类型id
     * @param financeTypeStatus 财务类别状态
     * @return 相关财务类型信息
     */
    FinanceType findFinanceTypeById(Integer financeTypeId, String financeTypeStatus);

    /**
     * 根据财务类型名称查询财务信息
     *
     * @param financeTypeName   财务类型名称
     * @param financeTypeStatus 财务类别状态
     * @return 相关财务类型信息
     */
    List<FinanceType> findFinanceTypeByName(String financeTypeName, String financeTypeStatus);

    /**
     * 验证财务类型是否存在
     *
     * @param financeTypeName 财务类型名称
     * @return 财务信息
     */
    FinanceType checkFinanceTypeByName(String financeTypeName);

    /**
     * 查询所有财务类型信息
     *
     * @return 财务类型信息
     */
    ReturnData findFinanceType();

    /**
     * 查询所有财务类型信息
     *
     * @return 财务类型信息
     */
    List<FinanceType> findFinanceTypeList();

    /**
     * 添加财务类型信息
     *
     * @param financeType 财务类型信息
     * @return 影响行数
     */
    Integer addFinanceType(FinanceType financeType);

    /**
     * 修改财务类型信息
     *
     * @param financeType 财务类型
     * @return 影响条数
     */
    Integer updateFinanceType(FinanceType financeType);

    /**
     * 删除财务类型信息
     *
     * @param financeTypeId 财务类型id
     * @return 影响条数
     */
    Integer deleteFinanceType(int financeTypeId);
}
